﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class УправлениеЗапасамиПартионныйУчетФормированиеПроводокМежд
	{
		////////////////////////////////////////////////////////////////////////////////
		// ТЕХНОЛОГИЧЕСКИЕ

		public void ЗаполнитьСубконтоПоСписаниюТоваровМежд(/*Проводка, СтрокаДокумента, Движение, СтруктураПараметров*/)
		{
			if(true/*СтрокаДокумента.ОтражатьВМеждународномУчете*/)
			{
				//ВидСубконтоНоменклатура         = ПланыВидовХарактеристик.ВидыСубконтоМеждународные.Номенклатура;
				//ВидСубконтоНоменклатурныеГруппы = ПланыВидовХарактеристик.ВидыСубконтоМеждународные.НоменклатурныеГруппы;
				//ВидСубконтоСклады       = ПланыВидовХарактеристик.ВидыСубконтоМеждународные.Склады;
				//ВидСубконтоПодразделения= ПланыВидовХарактеристик.ВидыСубконтоМеждународные.Подразделения;
				//ВидСубконтоСтатьиЗатрат = ПланыВидовХарактеристик.ВидыСубконтоМеждународные.СтатьиЗатрат;
				//ВидСубконтоДоговоры     = ПланыВидовХарактеристик.ВидыСубконтоМеждународные.Договоры;
				//ВидСубконтоКонтрагенты  = ПланыВидовХарактеристик.ВидыСубконтоМеждународные.Контрагенты;
				//ВидСубконтоОбъектыСтроительства = ПланыВидовХарактеристик.ВидыСубконтоМеждународные.ОбъектыСтроительства;
				//ВидСубконтоОсновныеСредства = ПланыВидовХарактеристик.ВидыСубконтоМеждународные.ОсновныеСредства;
				/*// Заполняем дебет:
*/
				if(true/*ЗначениеЗаполнено(Проводка.СчетДт)*/)
				{
				}
				/*// Заполняем кредит
*/
				if(true/*ЗначениеЗаполнено(Проводка.СчетКт)*/)
				{
				}
			}
		}
		//ЗаполнитьСубконтоПоСписаниюТоваровМежд()
		// Связанные со списанием движжения по международному учету
		//
		// Параметры:
		//	Нет.
		//

		public void ВыполнитьСвязанныеДвиженияМеж(/*СтрокаДокумента, СтруктураПараметров, Движение*/)
		{
			if(true/*СтрокаДокумента.ОтражатьВМеждународномУчете*/)
			{
				/*// Обработка
*/
			}
		}
		// ВыполнитьСвязанныеДвиженияМеж()
		////////////////////////////////////////////////////////////////////////////////
		// СПИСАНИЕ ПО СЧЕТАМ БУХ УЧЕТА
		// Меж
		// Формирование проводок по списанию на счет по международному учету
		//
		// Параметры:
		//	Нет.
		//

		public void СписаниеНаСчетМеж(/*СписаноИз, СтрокаДокумента, СтруктураПараметров, Движение, ТипЗаписи = "Прямая"*/)
		{
			if(true/*НЕ СтрокаДокумента.ОтражатьВМеждународномУчете*/)
			{
			}
			//ИмяРегистра = "Международный";
			//Проводка = СтруктураПараметров["Движения"+ИмяРегистра].Добавить();
			//Количество = Движение.Количество;
			//Сумма      = Движение.Стоимость;
			if(true/*СписаноИз = "Переданные" 
		И Движение.СтоимостьПоступление<>0*/)
			{
				//Сумма = Движение.СтоимостьПоступление;
			}
			if(true/*ТипЗаписи = "Сторно"*/)
			{
				//Количество = - Количество;
				//Сумма      = - Сумма;
			}
			//Проводка.Период        = Движение.Период;
			//Проводка.Регистратор   = СтруктураПараметров.Регистратор;
			//Проводка.Активность    = Истина;
			//Проводка.Организация   = СтрокаДокумента.Организация;
			//Проводка.СчетКт        = Движение.СчетУчета;
			/*// Не заполняем счет кредита, если дебет и кредит балансовый и забалансовый
*/
			if(true/*ЗначениеЗаполнено(СтрокаДокумента.КорСчетМУ)
		И Проводка.СчетКт.Забалансовый = СтрокаДокумента.КорСчетМУ.Забалансовый*/)
			{
				//Проводка.СчетДт    = СтрокаДокумента.КорСчетМУ;
				/*// Для перемещения счет кредита не задается
*/
			}
			//ЗаполнитьСубконтоПоСписаниюТоваровМежд(Проводка, СтрокаДокумента, Движение, СтруктураПараметров);
			//Проводка.Сумма         = Сумма;
			if(true/*Проводка.СчетКт.Количественный*/)
			{
				//Проводка.КоличествоКт  = Количество;
			}
			/*// Количество
*/
			if(true/*ЗначениеЗаполнено(Проводка.СчетДт)*/)
			{
				if(true/*Проводка.СчетДт.Количественный*/)
				{
					//Проводка.КоличествоДт  = Количество;
					/*// Новое количество-для комплектации
*/
					if(true/*Движение.КоличествоПоступление<>0*/)
					{
						//Проводка.КоличествоДт	= Движение.КоличествоПоступление;
					}
				}
			}
			//Проводка.Содержание    = Строка(Движение.КодОперации);
			/*//Проводка.НомерЖурнала  = ПолучитьНомерЖурналаМУПоКоду(СтрокаДокумента);
*/
			/*// Проверка добавленных проводок
*/
			//НеДобавлять = Ложь;
			/*// Проводки с одинаковыми субсчетами и субконто не добавляем:
*/
			if(true/*Проводка.СчетДт = Проводка.СчетКт*/)
			{
				//НеДобавлять = Истина;
			}
			if(true/*СтрокаДокумента.КодОперацииПартииТоваров = Перечисления.КодыОперацийПартииТоваров.ВозвратПоставщику 
		И УправлениеЗапасамиПартионныйУчетФормированиеПроводокРегл.СчетВИерархии(Движение.СчетУчета, ПланыСчетов.Международный.Тара, СтруктураПараметров)*/)
			{
				//НеДобавлять = Истина;
			}
			/*// Проводки с нулевой суммой и количеством не добавляем
*/
			//НеДобавлять = НеДобавлять ИЛИ (Проводка.Сумма=0 И Проводка.КоличествоДт=0 И Проводка.КоличествоКт=0);
			/*// Незаконченные проводки с балансовыми счетами не добавляем
*/
			/*НеДобавлять = НеДобавлять ИЛИ 
	(   НЕ Проводка.СчетДт.Забалансовый И НЕ ЗначениеЗаполнено(Проводка.СчетКт)	
	ИЛИ НЕ Проводка.СчетКт.Забалансовый И НЕ ЗначениеЗаполнено(Проводка.СчетДт));*/
			/*// Проводки не добавляем к не регистрируемым в регистре документам
*/
			//НеДобавлять = НеДобавлять ИЛИ СтруктураПараметров["Движения"+ИмяРегистра].Отбор.Регистратор.Значение = Неопределено;
			/*// Задалансовые счета с разными суммами поступления и списания:
*/
			/*// две  проводки без корреспонденции
*/
			if(true/*СтрокаДокумента.КодОперацииПартииТоваров = Перечисления.КодыОперацийПартииТоваров.ПереоценкаПринятыхНаКомиссию
		И Проводка.СчетДт.Забалансовый И Проводка.СчетКт.Забалансовый
		И СтрокаДокумента.СтоимостьПоступлениеБУ<>0*/)
			{
				//НеДобавлять = Ложь;
				//ПерваяПроводка = Проводка;
				//ВтораяПроводка = СтруктураПараметров["Движения"+ИмяРегистра].Добавить();
				//ВтораяПроводка.Период        = СтруктураПараметров.Период;
				//ВтораяПроводка.Регистратор   = СтруктураПараметров.Регистратор;
				//ВтораяПроводка.Активность    = Истина;
				//ВтораяПроводка.СчетДт        = ПерваяПроводка.СчетДт;
				//ВтораяПроводка.Сумма         = СтрокаДокумента.СтоимостьПоступлениеБУ;
				if(true/*ВтораяПроводка.СчетДт.Количественный*/)
				{
					//ВтораяПроводка.КоличествоДт  = Количество;
				}
				//ВтораяПроводка.Организация   = СтрокаДокумента.Организация;
				/*// Перенос субконто
*/
				//ВтораяПроводка.Содержание    = ПерваяПроводка.Содержание;
				//ВтораяПроводка.НомерЖурнала  = ПерваяПроводка.НомерЖурнала;
				/*// Очистка первой проводки
*/
				//ПерваяПроводка.СчетДт = Неопределено;
				//ПерваяПроводка.СубконтоДт.Очистить();
				//ПерваяПроводка.КоличествоДт = 0;
				/*// Нужно устанавливать в зависимости от кода операции
*/
				/*//ПерваяПроводка.НомерЖурнала  = ПолучитьНомерЖурналаБУПоКоду(СтрокаДокумента);
*/
				/*// Проводка для указания корреспонденции в регистре
*/
				//Проводка = ВтораяПроводка;
			}
			/*// В случае, если проводку добавлять не нужно, удаляем ее из движений
*/
			if(true/*НеДобавлять*/)
			{
				/*// Удаляем добавленную строку
*/
				//СтруктураПараметров["Движения"+ИмяРегистра].Удалить(Проводка);
				/*// Если проводки не добавляются, тогда выход без изменения
*/
			}
			//СтруктураПараметров["ИзмененыДвижения"+ИмяРегистра] = Истина;
			/*// В реквизиты движения регистра занесем счет списания
*/
			//Движение.КорСчет      = Проводка.СчетДт;
			//Сч = 0;
		}
		// СписаниеНаСчетМеж()
		////////////////////////////////////////////////////////////////////////////////
		// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ, ФОРМИРУЮЩИЕ СТРУКТУРУ ДАННЫХ ДЛЯ ПЕРЕДАЧИ В МЕЖД. УЧЕТ

		public void ОпределитьСоставКолонокТаблицаСписанныхПартийМеж(/*СтруктураПараметров, СписокИспользуемыхОпераций, СтруктураКолонок*/)
		{
			//УправлениеЗапасамиПартионныйУчет.ОпределитьСоставКолонокТаблицаСписанныхПартийОбщихДляВсехВидовУчета(СтруктураПараметров, СписокИспользуемыхОпераций, СтруктураКолонок);
			//КодыОпераций = СтруктураПараметров.КодыОпераций;
			/*// Колонки базовые
*/
			//СтруктураКолонок.Вставить("СчетУчета");
			//СтруктураКолонок.Вставить("СчетДоходовБУ");
			//СтруктураКолонок.Вставить("СчетРасходовБУ");
			//СтруктураКолонок.Вставить("СчетУчетаБУ");
			//СтруктураКолонок.Вставить("ПринятыеСчетУчетаБУ");
			//СтруктураКолонок.Вставить("КорСчетМУ");
			//СтруктураКолонок.Вставить("ПринятыеКорСчетБУ");
			//СтруктураКолонок.Вставить("КорСубконтоМУ1");
			//СтруктураКолонок.Вставить("КорСубконтоМУ2");
			//СтруктураКолонок.Вставить("КорСубконтоМУ3");
			//СтруктураКолонок.Вставить("СтатьяДоходовИРасходов");
			/*// Колонки по набору условий
*/
			if(true/*не СписокИспользуемыхОпераций.НайтиПоЗначению(КодыОпераций.Реализация ) = неопределено
		ИЛИ не СписокИспользуемыхОпераций.НайтиПоЗначению(КодыОпераций.РеализацияРозница) = неопределено
		ИЛИ не СписокИспользуемыхОпераций.НайтиПоЗначению(КодыОпераций.РеализацияКомиссия) = неопределено
		ИЛИ не СписокИспользуемыхОпераций.НайтиПоЗначению(КодыОпераций.ВозвратПоставщику) = неопределено
		ИЛИ не СписокИспользуемыхОпераций.НайтиПоЗначению(КодыОпераций.ПередачаТарыКонтрагенту) = неопределено*/)
			{
				//СтруктураКолонок.Вставить("КорСчетЗадолженностиБУ");
				//СтруктураКолонок.Вставить("КорСубконтоЗадолженностиБУ1");
				//СтруктураКолонок.Вставить("КорСубконтоЗадолженностиБУ2");
				//СтруктураКолонок.Вставить("КорСубконтоЗадолженностиБУ3");
				//СтруктураКолонок.Вставить("ВалютнаяСуммаЗадолженностиБУ");
				//СтруктураКолонок.Вставить("КорВалютаЗадолженностиБУ");
				//СтруктураКолонок.Вставить("СуммаВыручкиБУ");
				//СтруктураКолонок.Вставить("СуммаНДСВыручкиБУ");
			}
		}
	}
}
